Composite infrastructures intended for use with computer systems oftentimes have an information storage architecture environment which may have a number of interconnected complex object nodes. Each object node may have independent tree-like structures comprising hierarchies of interconnected complex subordinate object nodes of information wherein each subordinate object node may further comprise independent sub-tree structures of interconnected sub-nodes of information.
Computer systems using such infrastructures may run processes wherein the processes concurrently access the infrastructures. In particular, a computer system may run a number of processes each of which requires access to conceptual structures embodied on a complex infrastructure. A process may require access to one, several or all entities of a conceptual structure embodied on infrastructure nodes many times during the running of the process. In order to insure continuity of operation, a process may apply locks against an entity that will operate against the entity and impliedly against all dependent entities of the locked entity to allow only the process holding the lock to write into and read information from the locked entity. In addition, each entity on which the locked entity is dependent is assigned an intermediate type of lock to ensure a consistency of information. During the time a process holds the lock, other processes concurrently running on computer systems served by the complex infrastructure may be prevented from writing into and reading information from a locked entity, dependent entities and entities on which the entity is dependent.
A problem arises during the concurrent operation of multiple processes in that when one process locks an entity, other processes that require access to entities dependent on the locked entity and on entities on which the locked entity is dependent may be delayed in obtaining access to the entities until the lock is removed. Another problem arises in that concurrently running processes may be required to selectively apply locks to entities dependent on a previously locked entity and are required to wait until the lock can be removed. Yet another problem may arise in that one process requiring that a entity be locked during the running of the process may have to wait after the start of the process until a previously applied lock can be removed. Still yet another problem arises in that locks applied to conceptual entities embodied on complex nodes of an information storage infrastructure are required to be implemented on the complex nodes of the infrastructure.